Communication node, communication system, and communication method

ABSTRACT

A method for a communication node is presented. The method may include storing, in the memory, a set of desired network performance characteristics for an application. The method may further include storing, in the memory, a plurality of traffic-control configurations, where each of the plurality of traffic-control configurations is associated with an estimated power usage and a set of estimated network performance characteristics. The method may also include selecting, to execute the application, a particular traffic-control configuration from a set of two or more traffic-control configurations in the plurality of traffic-control configurations, where the set of two or more traffic-control configurations meet the set of desired network performance characteristics for the application. The method may further include configuring the communication node based on the particular traffic-control configuration.

BACKGROUND Field

The present disclosure is generally directed to traffic control at anedge server.

Related Art

In recent years, not only cloud computing but also edge computing havebeen attracting attention with data growth due to the development of IoT(Internet of Things). In an edge computing system, edge servers, such as5G MEC (Multi-access Edge Computing), are placed in the position nearedge devices physically. The more fields they manage or the moreadvanced processes they execute, the more complicated their system maybe due to an increased number of hardware resource. Edge servers areexpected to utilize limited resource effectively. Considering the statusof edge servers is necessary to the entire system performance.Currently, power constraints may be imposed by a method of deployingcontainers constrained by power profiles on a host system. However, withmultiple options (e.g., interfaces) for traffic control, it is importantthat edge servers utilize resources effectively by selecting anoptimized interface from a set of multiple interfaces while consideringan applications network performance requirements. Additionally, it wouldbe beneficial to allow dynamic monitoring of network performance inorder to change between methods of traffic control based on themonitored network performance, an application's required networkperformance, and an estimated power usage associated with differenttraffic control methods.

SUMMARY

Example implementations described herein include an innovative methodfor a communication node. The method may include storing, in the memory,a set of desired network performance characteristics for an application.The method may further include storing, in the memory, a plurality oftraffic-control configurations, where each of the plurality oftraffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. Themethod may also include selecting, to execute the application, aparticular traffic-control configuration from a set of two or moretraffic-control configurations in the plurality of traffic-controlconfigurations, where the set of two or more traffic-controlconfigurations meet the set of desired network performancecharacteristics for the application. The method may further includeconfiguring the communication node based on the particulartraffic-control configuration.

Example implementations described herein include an innovativecomputer-readable medium storing computer executable code for acommunication node. The computer executable code may includeinstructions for storing, in the memory, a set of desired networkperformance characteristics for an application. The computer executablecode may also include instructions for storing, in the memory, aplurality of traffic-control configurations, where each of the pluralityof traffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. Thecomputer executable code may further include instructions for selecting,to execute the application, a particular traffic-control configurationfrom a set of two or more traffic-control configurations in theplurality of traffic-control configurations, where the set of two ormore traffic-control configurations meet the set of desired networkperformance characteristics for the application. The computer executablecode may also include instructions for configuring the communicationnode based on the particular traffic-control configuration.

Example implementations described herein include an innovative apparatusfor a communication node. The apparatus may include a memory and atleast one processor configured to store, in the memory, a set of desirednetwork performance characteristics for an application. The at least oneprocessor may also be configured to store, in the memory, a plurality oftraffic-control configurations, wherein each of the plurality oftraffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. The atleast one processor may further be configured to select, to execute theapplication, a particular traffic-control configuration from a set oftwo or more traffic-control configurations in the plurality oftraffic-control configurations, wherein the set of two or moretraffic-control configurations meet the set of desired networkperformance characteristics for the application. The at least oneprocessor may also be configured to configure the communication nodebased on the particular traffic-control configuration.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a system configuration diagram of a communication systemincluding an edge server which is a communication node according to someaspects of this disclosure.

FIG. 2 is a diagram showing an example application requirements table.

FIG. 3 is a diagram showing an example field status table.

FIG. 4 is a diagram showing an example traffic control patterns table.

FIG. 5 is a diagram showing an example system status table.

FIG. 6 is a flowchart illustrating a selection operation performed bythe system.

FIG. 7 is a call flow diagram showing a set of communications associatedwith configuring a first traffic control pattern and a subsequentswitching to a different traffic control pattern in the system of FIG. 1.

FIG. 8 is a diagram showing an example of a traffic pattern switch asdescribed in relation to FIG. 7 .

FIG. 9 is a diagram showing an example of a traffic pattern switch asdescribed in relation to FIG. 7 .

FIG. 10 is a diagram showing an example of a traffic pattern switch asdescribed in relation to FIG. 7 .

FIG. 11 is a diagram showing an example of a traffic pattern switch asdescribed in relation to FIG. 7 .

FIG. 12 is a flowchart diagram illustrating a switching operation of anorchestrator.

FIG. 13 is a flow diagram illustrating a method for providing trafficcontrol for a set of applications.

FIG. 14 is a flow diagram illustrating a method for providing trafficcontrol for a set of applications.

FIG. 15 is a flow diagram illustrating a method for updating a trafficcontrol configuration based on monitoring network traffic performanceassociated with an application.

FIG. 16 is a flow diagram illustrating a method for updating a trafficcontrol configuration based on monitoring power consumption associatedwith an application.

FIG. 17 is a flow diagram illustrating a method for updating a trafficcontrol configuration based on an updated set of desired networkperformance characteristics associated with an application.

FIG. 18 is a flow diagram illustrating a method for updating a set oftraffic control configurations based on an updated set of desirednetwork performance characteristics associated with an application.

FIG. 19 illustrates an example computing environment with an examplecomputer device suitable for use in some example implementations.

DETAILED DESCRIPTION

The following detailed description provides details of the FIGs. andexample implementations of the present application. Reference numeralsand descriptions of redundant elements between FIGs. are omitted forclarity. Terms used throughout the description are provided as examplesand are not intended to be limiting. For example, the use of the term“automatic” may involve fully automatic or semi-automaticimplementations involving user or administrator control over certainaspects of the implementation, depending on the desired implementationof one of the ordinary skills in the art practicing implementations ofthe present application. Selection can be conducted by a user through auser interface or other input means, or can be implemented through adesired algorithm Example implementations as described herein can beutilized either singularly or in combination and the functionality ofthe example implementations can be implemented through any meansaccording to the desired implementations.

In this disclosure, a communication node and a communication system ispresented that controls the methods of traffic control at thecommunication node (e.g., the edge server). Each traffic control methodmay consume a different amount of power depending on its performance orthe hardware that it is executed on. By balancing the requirements forthe system including network performance and the processing power neededassociated with each method, the system may provide optimized trafficcontrol.

Example implementations described herein include an innovative methodfor a communication node. The method may include storing, in the memory,a set of desired network performance characteristics for an application.The method may further include storing, in the memory, a plurality oftraffic-control configurations, where each of the plurality oftraffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. Themethod may also include selecting, to execute the application, aparticular traffic-control configuration from a set of two or moretraffic-control configurations in the plurality of traffic-controlconfigurations, where the set of two or more traffic-controlconfigurations meet the set of desired network performancecharacteristics for the application. The method may further includeconfiguring the communication node based on the particulartraffic-control configuration.

FIG. 1 is a system configuration diagram of a communication system 100including an edge server 110 which is a communication node according tosome aspects of this disclosure. The edge server 110, in some aspects,connects to a set of ‘K’ field servers 103 including a first fieldserver 103-1 to a K-th field server 103-K via a communication network104. The first field server 103-1, in some aspects, connects fielddevices such as a first sensor 101-1 and a first device 102-1. The K-thfield server 103-K, in some aspects, connects field devices such as aK-th sensor 101-K and a K-th device 102-K.

The edge server 110, in some aspects, includes a set of ‘L’ physicalnetwork interfaces 111 including a first physical network interface111-1 to an L-th physical network interface 111-L, a network switchingmodule 112, a set of ‘M’ network interfaces for applications 113 forapplications including a first network interface for application 113-1to an M-th network interface for application 113-M, a multi networkingmodule 114, a set of ‘N’ applications 115 including a first application115-1 to an N-th application 115-N, an orchestrator 116, a power monitor117, an application requirements table 105, a field status table 106, atraffic control patterns table 107, and a system status table 108.

The physical network interfaces 111, in some aspects, may acquire, fromthe field servers 103, field data such as field devices status. Thephysical network interfaces may also, in some aspects, send control datasuch as command data to control field devices and feedback data to thefield devices based on data analysis executed on the edge server 110.The physical network interfaces 111 may include a processor such as anaccelerator to control the traffic of the field data and the controldata. The network switching module 112, in some aspects, connects thephysical network interfaces 111 and the network interfaces forapplications 1113. The network switching module 112 in some aspects,includes a network stack of a host operating system (OS) and providestraffic control functions. The network switching module 112 may includea physical network switching device. In some aspects, the networkinterfaces for applications 113 include virtual network interfaces, suchas a virtual network interface card (NIC) or container networkinterfaces, which may provide traffic control functions based on avirtual machine's network stack or a container's network stack. Themulti networking module 114, in some aspects, may connect the networkinterfaces for applications 113 and the applications 115 to provide theapplications 115 with multiple network interfaces. In some aspects, theapplications 115 may be applications executed on virtual machines orcontainers. The applications 115 may leverage more than one of thenetwork interfaces for applications 113 directly. The orchestrator 116,in some aspects, may manage and select the traffic control patternsinside the edge server 110 based on information in the applicationrequirements table 105, the field status table 106, the traffic controlpatterns table 107, and the system status table 108. The power monitor117, in some aspects, estimates and monitors power consumption insidethe edge server 110. In some aspects, the power monitor 117 calculatespower consumption for each traffic control pattern described in thetraffic control patterns table 107.

FIG. 2 is a diagram 200 showing an example application requirementstable 210. The application requirements table 210, in some aspects, maystore information regarding a set of desired network performancecharacteristics or network performance requirements of the applications115 of FIG. 1 . For example, the application requirements table 210 mayinclude a set of fields including an application ID field 201 storing anapplication ID associated with a corresponding value (or range ofvalues) in each of a throughput field 202, a delay field 203, and ajitter field 204. The application ID field 201, in some aspects,identifies the applications (e.g., applications 115 of FIG. 1 ). Theapplication requirements table 210 may represent an example of theapplication requirements table 105 that is referenced by theorchestrator 116 of FIG. 1 .

FIG. 3 is a diagram 300 showing an example field status table 310. Thefield status table 310 (e.g., an example of a field status table 106)may store information of the result data of network performance. Thenetwork performance, in some aspects, may be measured by one or morefield servers (e.g., field servers 103 of FIG. 1 ), for each of theapplications (e.g., applications 115 of FIG. 1 ). The field status table310 includes a set of fields including an application ID field 301storing an application ID associated with a measured throughout in acorresponding throughput field 302, a measured jitter in a correspondingjitter field 303, and a measured delay in a corresponding delay field304. The application ID stored in application ID field 301, in someaspects, corresponds to the same application IDs (and applications,e.g., the applications 115 of FIG. 1 ) as the application IDs in theapplication ID field 201 shown in FIG. 2 . The field status table 310may represent an example of the field status table 106 that isreferenced by the orchestrator 116 and updated by the applications 115of FIG. 1 . The field servers 103 and the edge server 110 may besynchronized via the communication network 104 by time synchronizationsuch as Precision Time Protocol (PTP).

FIG. 4 is a diagram 400 showing an example traffic control patternstable 410. The traffic control patterns table 410 (e.g., an example of atraffic control patterns table 107), in some aspects, may storeinformation regarding the configuration patterns for traffic control,which an edge server (e.g., the edge server 110) provides. The storedinformation may include an estimated power usage and a set of estimatednetwork performance characteristics corresponding to characteristicsidentified in the application requirements table 105 or 210 of FIGS. 1and 2 . For example, the traffic control patterns table 410 includes aset of fields including a pattern ID field 401, a throughput field 402,a delay field 403, a jitter field 404, a power field 405, a physicalnetwork interface field 406, a network switching function field 407, anda network interface for application field 408. The pattern ID in apattern ID field 401 identifies the configuration of a traffic controlpattern. The throughput field 402, the delay field 403, and the jitterfield 404, in some aspects, may represent a predicted networkperformance for each of the traffic control patterns in the trafficcontrol patterns table 410. A value associated with the power field 405,in some aspects, represents an estimated power consumption for acorresponding traffic control pattern identified in the pattern ID field401. The physical network interface field 406, the network switchingfunction field 407, and the network interface for application field 408indicate, for a corresponding traffic control pattern in some aspects, aconfiguration of traffic control including functions provided by thephysical network interfaces 111, the network switching module 112, andthe network interfaces for applications 113.

For instance, referring to FIGS. 1 and 4 , the first line shown in FIG.4 may be associated with pattern ID #1 and indicates that “Accelerator'sControl” is stored in the physical network interface field 406, “-” isstored in the network switching function field 407, and “Offload toAccelerator” is stored in the network interface for application field408. This example indicates that, when the pattern ID is “#1”, the edgeserver 110 provides the traffic control function with the physicalnetwork interfaces 111. The physical network interfaces 111 may includea dedicated hardware, such as a processor or a logic circuit, toaccelerate the traffic control function.

The second line shown in FIG. 4 may be associated with pattern ID #2 andindicates that “-” is stored in the physical network interface field406, “-” is stored in the network switching function field 407, and“Strict Control” is stored in the network interface for applicationfield 408. This example indicates that, when the pattern ID is “#2”, theedge server 110 may provide the traffic control function with a networkinterface for applications (e.g., network interface for application113-1 in the set of network interfaces for applications 113). Thenetwork interface for application may include a virtual networkinterface that supports single rot input/output virtualization (SR-10V)and data plane development kit (DPDK) to provide the application 115with a strict traffic control. The network interface for application mayinclude a container network interface that supports a strict trafficcontrol function utilizing the container's network stack.

The third line shown in FIG. 4 may be associated with pattern ID #3 andindicates that “-” is stored in the physical network interface field406, “Loose Control” is stored in the network switching function field407, and “-” is stored in the network interface for application field408. This example indicates that, when the pattern 11) is “3”, the edgeserver 110 provides the traffic control function with the networkswitching module 112. The network switching module 112 may utilize anetwork stack of a host OS that supports queuing disciplines to providethe application 115 with a loose traffic control. The network switchingmodule 112 may include a physical network switching device to providethe Applications 115 with a traffic control function dedicatedly. Anedge server (e.g., edge server 110), in some aspects, may update atraffic control patterns table (e.g., traffic control patterns table107) with power consumption monitored by a power monitor (e.g., powermonitor 117). The edge server, in some aspects, may generate a set ofadditional traffic control patterns in traffic control patterns table410 based on the entries in a field status table (e.g., field statustable 106) for each application ID in an application ID field 301.

FIG. 5 is a diagram 500 showing an example system status table 510. Thesystem status table 510, in some aspects, stores information of thesystem status of a communication system managed by an edge server (e.g.,the communication system 100 of FIG. 1 managed by the edge server 110).The system status table 510 includes a set of fields including a systemID field 501, an app ID field 502, a target field ID field 503, atraffic control pattern ID field 504, a status field 505, a priorityfield 506, and a power field 507. The system ID field 501 managesapplications as a system and identifies the relationship between theapplication and the field side, such as the field servers with which theedge server communicates. The app ID field 502 indicates an ID of anassociated application 115. The target field 11) field 503 indicates theID of the associated field side. The traffic control pattern ID field504 identifies the pattern ID 401 shown in FIG. 4 . The status field 505indicates, in some aspects, whether the traffic control patternindicated in the traffic control pattern ID field 504 is used or not.The priority field 506 shows the priority of the traffic control patternindicated in the traffic control pattern ID field 504 for each of theapplication IDs in app ID field 502. The priority may be determinedbased on the power indicated in power field 405 shown in FIG. 4 . Thepower field 507 may indicate a power usage, or power usage level. Thepower usage or power usage level stored in the power field 507 may be apower usage measured by a power monitor (e.g., power monitor 117 of FIG.1 ). In some aspects, an edge server (e.g., edge server 110) mayaccommodate a set of applications and determine (and adjust) thecorresponding traffic control patterns while maintaining an aggregatedpower consumption (e.g., an aggregated power usage) limit configured forthe edge server.

FIG. 6 is a flowchart 600 illustrating a selection operation performedby the system. In some aspects, the selection operation is performed byan orchestrator (e.g., the orchestrator 116). In some aspects, thesystem, (e.g., the orchestrator 116), may begin execution of theselection operation when an application requirements table (e.g.,application requirements table 105 or 210) is updated. The system.(e.g., the orchestrator 116) may check the application requirementstable for updates periodically.

At 610, the system (e.g., the orchestrator 116) may search theapplication requirements table and identify a new application. The newapplication may be associated with a set of application requirements.For example, a new application may be associated with a thresholdthroughput (e.g., a minimum throughput), a threshold delay (e.g., amaximum delay), and/or a threshold jitter (a maximum jitter). Forexample, referring to FIGS. 1, 2, and 4 , an orchestrator 116 mayidentify from an application requirements table (e.g., applicationrequirements table 105 or 210) a first application #1 that is associatedwith a requirement for a minimum throughput of 100 Mbps, a maximum delayof 10 ms, and a maximum jitter of 1 ms and a second application #2 thatis associated with a requirement for a minimum throughput of 10 Kbps, amaximum delay of 100 ms, and a maximum jitter of 50 ms

At 620, the system (e.g., the orchestrator 116) may check the trafficcontrol patterns of a traffic control patterns table (e.g., the trafficcontrol patterns table 107 or 410) to identify one or more trafficcontrol patterns that meet the requirement for the identified newapplication. For example, referring to FIGS. 1, 2, and 4 , anorchestrator 116 may identify a traffic control pattern ID #1 that meetsthe requirements for application #1 and a set of traffic control patternIDs #1 and #2 that both meet the requirements for application #2.

At 630, the system (e.g., the orchestrator 116) may select a trafficcontrol pattern from the traffic control patterns identified at 620. Insome aspects, the selected traffic control pattern with the lowest valueof estimated power usage (or usage level) to associate with (or tolaunch for) the new application. For example, referring to FIGS. 1, 4,and 5 , an orchestrator 116 may select, for the application #2, thetraffic control pattern identified by traffic control pattern ID #2 overthe traffic control pattern identified by traffic control pattern ID #1.

Finally, at 640 the system (e.g., the orchestrator 116) may update asystem status table (e.g., system status table 108 or 510) with theselected pattern. In the case that there are several patterns to meetthe requirement (e.g., for the application associated with applicationID #2), the system may set the priority based on the value of estimatedpower usage level. For example, referring to FIGS. 1, 4, and 5 , theorchestrator 116 may update a system status table 108 or 510 withinformation for each application in a set of applications identified inapp ID field 502 regarding a field device (e.g., one of the fieldservers 103) associated with the application (e.g., in target field IDfield 503), traffic control patterns (e.g., identified in trafficcontrol patterns table 107 or 410) that meet the requirements associatedwith the application (e.g., in traffic control pattern ID field 504), astatus of the traffic patterns identified in traffic control pattern IDfield 504 (e.g., in status field 505), and apriority (or relativepriority) of the traffic control patterns associated with a sameapplication (e.g., in priority field 506).

FIG. 7 is a call flow diagram 700 showing a set of communicationsassociated with configuring a first traffic control pattern and asubsequent switching to a different traffic control pattern in thecommunication system 100 of FIG. 1 . FIG. 7 shows a sequence ofcommunications between a first field server 103-1 (e.g., a field serverin the set of field servers 103), the first physical network interface111-1 (e.g., a physical network interface in the set of physical networkinterfaces 111), the network switching module 112, the networkinterfaces for applications 113 (e.g., 113-1, 113-2), the application115, and the orchestrator 116 by using the example in which the twotraffic control patterns associated with the application ID #2 (in appID field 502) shown in FIG. 5 are switched in the edge server 110 basedon the field data from the field servers 103. FIG. 7 shows an examplesequence when the application requirements table 105, the trafficcontrol patterns table 107, and the system status table 108 areconfigured as shown in FIG. 2 . FIG. 4 , and FIG. 5 respectively.

For example, a first field server 103-1 may transmit a field data andmeasurement result in communication 701 to a first physical networkinterface 111-1. The first physical network interface 111-1 may, inturn, transmit communication 702 related to the field data andmeasurement result in communication 701 to network switching module 112.The network switching module 112 may then transmit communication 703(related to communications 701 and 702) to a first network interface forapplication 113-1 in the set of network interfaces for applications 113.The first network interface for application 113-1 may then transmit thecommunication 704 to application 115. The application may, at 705,process the field data and may update a field status in a field statustable 106. The orchestrator 116 may query the field status table 106 orotherwise check, at 751, the field status associated with theapplication. The application may communicate control data viacommunications 706, 707, 708, and 709 to the first field server 103-1via the same route in reverse with the network switching providing loosecontrol as indicated between communications 707 and 708.

At 710, the first field server 103-1 may measure network performanceassociated with the application 115 and communicate field data andmeasurement result via communications 711, 712, 713, and 714 similarlyto communications 702, 703, and 704. The application 115 may, at 715,process the field data and measurement result in communication 711 andupdate the field status. The orchestrator 116 may query the field statustable 106 or otherwise check, at 752, the field status associated withthe application. The orchestrator may identify that the networkperformance indicated in field data and measurement result incommunication 711 does not meet the requirements specified in anapplication requirements table and may indicate for a different trafficcontrol pattern to be used. Accordingly, the reverse path for controldata, e.g., communications 716, 717, 718, and 719, may include adifferent network interface for application 113-2 that applies strictcontrol before reaching the network switching module 112.

FIG. 8 is a diagram 800 showing an example of a traffic pattern switchas described in relation to FIG. 7 . For example, App #2 in applicationtable 820 may be associated with a requirement for jitter to be lessthan 50 ins. The system, e.g., a field server 103 of the communicationsystem 100 of FIG. 1 , may monitor a jitter associated with App #2 asillustrated in diagram 810. In diagram 810, the vertical axis indicatesthe measured jitter and the horizontal axis indicates the time at whichthe jitter is measured. From a time t₀ to a time t₁ the system may usetraffic control pattern #3. The traffic control pattern #3 may beselected from the traffic control patterns #2 and #3 in traffic controlpattern table 830 that each meet the requirements of App #2 based onbeing associated with a lower expected power usage, or expected powerusage level. At time t_(d) the system may measure (e.g., at 710) ajitter that is above the jitter threshold associated with App #2 anddetermine to switch to traffic control pattern #2 at the time t₁. Thetime delay between t_(d) and t₁ may be based on a processing time fordetecting that the threshold has been exceeded, determining anothertraffic control pattern to use, and configuring the components of theedge server to implement the determined traffic control pattern.

For example, referring to FIGS. 1 and 7 , the field server 103 maytransmit the field data and the measurement result to the edge server110 via communication 701. In the edge server 110, the field data andthe measurement result are transferred to the application 115 via thefirst physical network interface 111-1, the network switching module112, and the network interface for application 113-1 in communications702-704. Note that, in FIG. 7 , the network interface for application113-1 is the network interface in the set of network interfaces forapplications 113 associated with the traffic control pattern ID #3. Theapplication 115, at 705, processes the field data and updates the fieldstatus table 106 based on the measurement result.

Meanwhile, the orchestrator 116 checks the field status table 106 tomanage and select the traffic control patterns at 751. This operation ofthe orchestrator 116 will be explained in more detail in relation toFIG. 12 below. At this time (e.g., a time t₀) the orchestrator 116 doesnot switch the traffic control patterns because the traffic controlpattern #3 meets the requirement of the App #2. The control data istransferred from the application 115 to the field server 103 via thenetwork interface for application 113-1, the network switching module112, and the first physical network interface 111-1 via communications706-709. The network switching module 112 executes the loose controlbased on the traffic control pattern #3.

As described above, the field server 103 may measure network performanceat 710 (e.g., at time t_(d)) and transmits the field data and themeasurement result to the edge server 110 via communication 711 (viafirst physical network interface 111-1). The field data and themeasurement result are transferred to the application 115 via the firstphysical network interface 111-1, the network switching module 112, andthe network interface for application 113-1 via communications 712-714.The application 115, at 715, processes the field data and updates thefield status table 106 based on the measurement result.

Meanwhile, the orchestrator 116, at 752, checks the field status table106 to manage and select the traffic control patterns. At this time(e.g., time t₁) the orchestrator 116 may switch the traffic controlpatterns because the traffic control pattern #3 does not seem to meetthe requirement of the App #2. The control data is transferred from theapplication 115 to the field server 103 via the network interface forapplication 113-2, the network switching module 112, and the firstphysical network interface 111-1 in communications 716-719. The networkinterface for application 113-2 is used as the network interface forapplication 113 of the traffic control pattern #2. The network interfacefor application 113-2 executes the strict control based on the trafficcontrol pattern #2.

FIG. 9 is a diagram 900 showing an example of a traffic pattern switchas described in relation to FIG. 7 . For example, App #2 in applicationtable 920 may be associated with a requirement for delay to be less than100 ms. The system, e.g., a field server 103 of the communication system100 of FIG. 1 , may monitor a delay associated with App #2 asillustrated in diagram 910. In diagram 910, the vertical axis indicatesthe measured delay and the horizontal axis indicates the time at whichthe delay is measured. From a time t₀ to a time t₁ the system may usetraffic control pattern #3. The traffic control pattern #3 may beselected from the traffic control patterns #2 and #3 in traffic controlpattern table 930 that each meet the requirements of App #2 based onbeing associated with a lower expected power usage, or expected powerusage level. At time t_(d) the system may measure (e.g., at 710) a delaythat is above the delay threshold associated with App #2 and determineto switch to traffic control pattern #2 at time t₁.

FIG. 10 is a diagram 1000 showing an example of a traffic pattern switchas described in relation to FIG. 7 . For example, App #2 in applicationtable 1020 may be associated with a requirement for jitter to be lessthan 50 ms. App #2 may also be associated with a threshold of 40 ms forjitter to ensure that the requirement for jitter to be less than 50 mswill be met by switching traffic control patterns before the networkfails to meet the requirement that the jitter be less than 50 ms. Thesystem, e.g., a field server 103 of the communication system 100 of FIG.1 , may monitor a jitter associated with App #2 as illustrated indiagram 1010. In diagram 1010, the vertical axis indicates the measuredjitter and the horizontal axis indicates the time at which the jitter ismeasured. From a time t₀ to a time t₁ the system may use traffic controlpattern #3. The traffic control pattern #3 may be selected from thetraffic control patterns #2 and #3 in traffic control pattern table 1030that each meet the requirements of App #2 based on being associated witha lower expected power usage, or expected power usage level. At timet_(d) the system may measure (e.g., at 710) a jitter that is above thejitter threshold (e.g., above 40 ms) associated with App #2 anddetermine to switch to traffic control pattern #2 at time t₁.

FIG. 11 is a diagram 1100 showing an example of a traffic pattern switchas described in relation to FIG. 7 . For example, App #2 in applicationtable 1120 may be associated with a requirement for delay to be lessthan 100 ms. App #2 may also be associated with a threshold of 80 ms fordelay to ensure that the requirement for delay to be less than 100 mswill be met by switching traffic control patterns before the networkfails to meet the requirement that the delay be less than 100 ms. Thesystem, e.g., a field server 103 of the communication system 100 of FIG.1 , may monitor a delay associated with App #2 as illustrated in diagram1110. In diagram 1110, the vertical axis indicates the measured delayand the horizontal axis indicates the time at which the delay ismeasured. From a time t₀ to a time t₁ the system may use traffic controlpattern #3. The traffic control pattern #3 may be selected from thetraffic control patterns #2 and #3 in traffic control pattern table 1130that each meet the requirements of App #2 based on being associated witha lower expected power usage, or expected power usage level. At timet_(d) the system may measure (e.g., at 710) a delay that is above thedelay threshold (e.g., above 80 ms) associated with App #2 and determineto switch to traffic control pattern #2 t₁.

FIG. 12 is a flowchart diagram 1200 illustrating a switching operationof an orchestrator (e.g., orchestrator 116). The orchestrator, in someaspects, starts the execution of this operation periodically. Theorchestrator, in some aspects, may start the execution when anapplication updates the field status table. At 1210, the orchestratormay search an application requirements table (e.g., the applicationrequirements table 105) and a field status table (e.g., field statustable 106) and identifies an application (e.g., the applications 115)for which network requirements are not met based on the field status.For example, referring to FIGS. 7-11 , the orchestrator 116, at 752, maysearch the field status table 106 and an application requirements table(e.g., application requirements table 820, 920, 1020, or 1120) toidentify that the network requirements for application 115 are not beingmet as illustrated in FIGS. 8-11 .

At 1220, the orchestrator may determine whether there is a bettertraffic control pattern for the application identified at 1210. If theorchestrator determines, at 1220, that there is no better trafficcontrol pattern for the identified application, the switching operationends. However, if the orchestrator determines that there is at least onebetter traffic control pattern for the application identified at 1210,the orchestrator may prepare, at 1230, to switch the traffic pattern ofthe application identified at 1210. In some aspects, this preparationmay be executed in advance. For example, referring to FIGS. 5 and 8-11 ,the orchestrator may determine based on a system status table 510 thatthere is at least one other traffic control pattern (e.g., that meetsthe network appliance requirements of the application.

At 1240, the orchestrator may determine whether the preparation iscomplete or not. If the orchestrator determines, at 1240, that thepreparation is not complete, the orchestrator may return to 1240 todetermine whether the preparation is complete. If the orchestratordetermines, at 1240, that the preparation is complete, the orchestratormay execute, at 1250 the switching of the traffic pattern and end theoperation.

FIG. 13 is a flow diagram 1300 illustrating a method for providingtraffic control for a set of applications. The method may be performedby a system, and more specifically an edge server (e.g., edge server110) or an orchestrator of the edge server (e.g., orchestrator 116). At1310, the edge server may store, in the memory, a set of desired networkperformance characteristics for an application. In some aspects, theedge server may store, in the memory, a plurality of sets of desirednetwork performance characteristics for a plurality of applications. Theset of desired network performance characteristics, in some aspects, mayinclude one or more of a minimum throughput, a threshold jitter, or athreshold delay. For example, referring to FIGS. 1 and 2 , the edgeserver 110 may store one or more sets of desired network performancecharacteristics in an application requirements table 105 or 210, wherethe application requirements table 105 or 210 may be stored in a memoryof the edge server.

At 1320, the edge server may store, in the memory, a plurality oftraffic-control configurations, wherein each of the plurality oftraffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. Insome aspects, the estimated network performance characteristics relateto one or more of a throughput, a jitter, or a delay. The estimatedpower usage, in some aspects, may include one or more of a numericalvalue (or range) associated with the estimated power usage or anestimated power-usage level. In some aspects, the estimated power-usagelevel includes one of a high power-usage level, a medium power-usagelevel, or a low power-usage level. In other aspects, the estimatedpower-usage level may include a more (e.g., five or more) usage levelsfor finer-grained distinctions. For example, referring to FIGS. 1 and 4, the edge server may store a plurality of traffic-control configurationpatterns in a traffic control patterns table 107 or 410, where thetraffic control patterns table 107 or 410 may be stored in a memory ofthe edge server.

At 1330, the edge server may select, to execute an applicationassociated with a set of desired network performance characteristics, aparticular traffic-control configuration from a set of two or moretraffic-control configurations in the plurality of traffic-controlconfigurations. The set of two or more traffic-control configurations,in some aspects, include traffic-control configurations that meet theset of desired network performance characteristics for the application.In some aspects, the edge server may identify the set of two or moretraffic-control configurations by comparing the set of desired networkperformance characteristics for the application with the estimatednetwork performance characteristics associated with each of theplurality of traffic-control configurations. The particulartraffic-control configuration selected, in some aspects, may be atraffic-control configuration of the set of two or more traffic-controlconfigurations with a lowest associated estimated power usage or alowest estimated power-usage level. For example, referring to FIGS. 1,2, 4, and 5 , edge server 110 (or orchestrator 116) may compare the setof desired network performance characteristics for the applicationassociated with application ID #2 and the estimated network performancecharacteristics associated with different traffic control patterns intraffic control patterns table 107 or 410 to identify that trafficcontrol patterns associated with traffic control pattern IDs #1 and #2meet (or are expected to meet) the set of desired network performancecharacteristics and select the traffic control pattern associated withtraffic control pattern ID #2 based on a lower expected power usage.

Finally, at 1340, the edge server may configure the communication nodebased on the particular traffic-control configuration. The edge server,based on the selected particular traffic-control configuration, mayconfigure at least one of a physical interface, a network switch, or anapplication interface based on the particular traffic-controlconfiguration. For example, referring to FIGS. 1 and 4 , the edge server110 (or the orchestrator 116) may identify one of a set of physicalnetwork interfaces 111, a network switching module 112, or one of a setof networking interfaces for applications 113 that is associated withthe selected traffic control pattern based on one of fields 406-408 oftable 410 and may configure the identified physical interface, networkswitch, or networking interface for application.

FIG. 14 is a flow diagram 1400 illustrating a method for providingtraffic control for a set of applications. The method may be performedby a system, and more specifically an edge server (e.g., edge server110) or an orchestrator of the edge server (e.g., orchestrator 116). At1410, the edge server may store, in the memory, a plurality of sets ofdesired network performance characteristics for a plurality ofapplications. The set of desired network performance characteristics, insome aspects, may include one or more of a minimum throughput, athreshold jitter, or a threshold delay. For example, referring to FIGS.1 and 2 , the edge server 110 may store one or more sets of desirednetwork performance characteristics in an application requirements table105 or 210, where the application requirements table 105 or 210 may bestored in a memory of the edge server.

At 1420, the edge server may store, in the memory, a plurality oftraffic-control configurations, wherein each of the plurality oftraffic-control configurations is associated with an estimated powerusage and a set of estimated network performance characteristics. Insome aspects, the estimated network performance characteristics relateto one or more of a throughput, a jitter, or a delay. The estimatedpower usage, in some aspects, may include one or more of a numericalvalue (or range) associated with the estimated power usage or anestimated power-usage level. In some aspects, the estimated power-usagelevel includes one of a high power-usage level, a medium power-usagelevel, or a low power-usage level. In other aspects, the estimatedpower-usage level may include a more (e.g., five or mom) usage levelsfor finer-grained distinctions. For example, referring to FIGS. 1 and 4, the edge server may store a plurality of traffic-control configurationpatterns in a traffic control patterns table 107 or 410, where thetraffic control patterns table 107 or 410 may be stored in a memory ofthe edge server.

At 1430, the edge server may identify an application in the plurality ofapplications to be executed by the edge server (e.g., a communicationnode). For example, referring to FIGS. 1 and 2, the edge server 110 r anorchestrator 116, may identify an application of the applications 115 tobe executed. Based on the identified application, the edge server, at1440, may identify a set of two or more traffic-control configurationsthat meet the set of desired network performance characteristics for theapplication identified at 1430. The edge server may identify the set oftwo or more traffic-control configurations by comparing the set ofdesired network performance characteristics for the application with theestimated network performance characteristics associated with each ofthe plurality of traffic-control configurations. For example, referringto FIGS. 1, 2, 4, and 5 , edge server 130 (or orchestrator 116) maycompare the set of desired network performance characteristics for theapplication associated with application ID #2 and the estimated networkperformance characteristics associated with different traffic controlpatterns in traffic control patterns table 107 or 410 to identify thattraffic control patterns associated with traffic control pattern IDs #1and #2 meet (or are expected to meet) the set of desired networkperformance characteristics.

At 1450, the edge server may select a particular traffic-controlconfiguration from the set of two or more traffic-control configurationsin the plurality of traffic-control configurations. The set of two ormore traffic-control configurations, in some aspects, includetraffic-control configurations that meet the set of desired networkperformance characteristics for the application and that may beassociated with different estimated power usages (or power usagelevels). The particular traffic-control configuration selected, in someaspects, may be a traffic-control configuration of the set of two ormore traffic-control configurations with a lowest associated estimatedpower usage or a lowest estimated power-usage level. For example,referring to FIGS. 1 and 2 edge server 110 (or orchestrator 116) mayselect the traffic control pattern associated with traffic controlpattern ID #2 based on a lower expected power usage.

Finally, at 1460, the edge server may configure the communication nodebased on the particular traffic-control configuration. The edge server,based on the selected particular traffic-control configuration, mayconfigure at least one of a physical interface, a network switch, or anapplication interface based on the particular traffic-controlconfiguration. For example, referring to FIGS. 1 and 4 , the edge server110 (or the orchestrator 116) may identify one of a set of physicalnetwork interfaces 111, a network switching module 112, or one of a setof networking interfaces for applications 113 that is associated withthe selected traffic control pattern based on one of fields 406-408 oftable 410 and may configure the identified physical interface, networkswitch, or networking interface for application.

The methods illustrated in the flow diagrams 1300 and 1400 for providingtraffic control for a set of applications may represent an initialconfiguration. Additional operations may be performed subsequent to theinitial configuration as described in relation to FIGS. 15-18 .

FIG. 15 is a flow diagram 1500 illustrating a method for updating atraffic control configuration based on monitoring network trafficperformance associated with an application. The method may be performedby an edge server (e.g., edge server 110) or an orchestrator of an edgeserver (e.g., orchestrator 116). As indicated by the letter “A” at thebeginning of the flow diagram 1500, the method may be performed after aninitial configuration operation as described in FIGS. 13 and 14 . At1510, the edge server may receive an indication that at least onecharacteristic of a monitored traffic performance associated with theapplication does not meet at least one desired network performancecharacteristic in the set of desired network performance characteristicsfor the application. The at least one characteristic, in some aspects,may be one of a throughput, a jitter, and/or a delay. In some aspects,the at least one characteristic may have previously met the at least onedesired network performance characteristic. For example, referring toFIGS. 1 and 7-11 , an edge server 110, or an orchestrator 116, mayreceive an indication (e.g., from one of the set of field servers 103 orby examining a field status table 106) at time t_(d) that at least onenetwork performance characteristic no longer meets, or is expected to nolonger meet, the desired network performance characteristic as in FIGS.8-11 based on a measurement of network performance. e.g., a measurementmade at 710.

At 1520, the edge server may select a different traffic-controlconfiguration in the set of two or more traffic-control configurations.The different traffic-control configuration may be a lower prioritytraffic control configuration pattern in the set of two or more trafficcontrol configurations. For example, referring to FIGS. 1, 5, and 8-11 ,an edge server 110 may select, for an application identified byapplication ID #2, a different traffic control pattern from a set of twotraffic control patters in a system status table 108 or 510 maintainedby the edge server 110.

At 1530, the edge server may configure the communication node based onthe different traffic-control configuration. The edge server, based onthe different traffic-control configuration, may configure at least oneof a physical interface, a network switch, or an application interfacebased on the particular traffic-control configuration. Configuring theat least one of the physical interface, the network switch, or theapplication interface may include configuring a different one of thephysical interface, the network switch, or the application interface toprovide switching functionality for the application than was initiallyconfigured (e.g., at 1340 or 1460). For example, referring to FIGS. 1and 4 , the edge server 110 (or the orchestrator 116) may identify oneof a set of physical network interfaces 111, a network switching module112, or one of a set of networking interfaces for applications 113 thatis associated with the selected traffic control pattern based on one offields 406-408 of table 410 and may configure the identified physicalinterface, network switch, or networking interface for application.

FIG. 16 is a flow diagram 1600 illustrating a method for updating atraffic control configuration based on monitoring power consumptionassociated with an application. The method may be performed by a system,and more specifically an edge server (e.g., edge server 110) or anorchestrator of the edge server (e.g., orchestrator 116). As indicatedby the letter “B” at the beginning of the flow diagram 1600, the methodmay be performed after an initial configuration operation as describedin FIGS. 13 and 14 . At 1610, the edge server may receive an indicationof a power consumption associated with the particular traffic-controlconfiguration. The power consumption may be monitored by a power monitorof the edge server that may store the monitored power consumption in afield (e.g., a power field 507) of a system status table 108 or 510. Forexample, referring to FIGS. 1, 5, and 7 , the edge server 110 mayreceive (via a power monitor 117, a system status table 108, and anorchestrator 116) an indication (via checking the field status 752) of apower consumed by the edge server in providing switching for anapplication.

At 1620, the edge server may update, based on the monitored powerconsumption, the estimated power usage associated with the particulartraffic-control configuration. In some aspects, a relative priority ofthe particular traffic-control configuration compared to a secondtraffic-control configuration in the set of two or more traffic-controlconfigurations may be affected by the updated estimated power usageassociated with the particular traffic-control configuration. Forexample, if a monitored (or measured) power usage associated with acurrent traffic control pattern (the pattern identified by trafficcontrol ID #2), exceeds an estimated power consumption of a secondtraffic control pattern in a set of two or more traffic control patternsthat meet the set of desired network performance characteristics for theapplication, a relative priority of the current traffic control patternand the second traffic control pattern may be adjusted. For example,referring to FIGS. 1 and 5 , the edge server 110 may update an estimatedpower usage with a measured (actual) power usage in a power field 507 ofsystem status table 510 or 108, such that a relative priority based onan ordered list of estimated power usage (e.g., with higher priorityassigned to traffic control patterns associated with lower estimatedpower usages) may be updated based on the measured power consumptionand/or usage.

At 1630, the edge server may determine, based on the updated estimatedpower usage associated with the particular traffic-controlconfiguration, to select the second traffic-control configuration. Asdescribed in relation to updating the estimated power usage associatedwith the particular traffic-control configuration at 1620, the priorityof the particular traffic-control configuration may, after the update,be lower than the priority of the second traffic-control configuration.Accordingly, the edge server may determine, based on the updatedpriority, to select the second traffic-control configuration to provideswitching for the application instead of the particular traffic-controlconfiguration previously selected.

Finally, at 1640, the edge server may configure the communication nodebased on the second traffic-control configuration. The edge server,based on the second traffic-control configuration, may configure atleast one of a physical interface, a network switch, or an applicationinterface based on the particular traffic-control configuration.Configuring the at least one of the physical interface, the networkswitch, or the application interface may include configuring a differentone of the physical interface, the network switch, or the applicationinterface to provide switching functionality for the application thanwas initially configured (e.g., at 1340 or 1460). For example, referringto FIGS. 1 and 4 , the edge server 110 (or the orchestrator 116) mayidentify one of a set of physical network interfaces 111, a networkswitching module 112, or one of a set of networking interfaces forapplications 113 that is associated with the selected traffic controlpattern based on one of fields 406-408 of table 410 and may configurethe identified physical interface, network switch, or networkinginterface for application.

FIG. 17 is a flow diagram 1700 illustrating a method for updating atraffic control configuration based on an updated set of desired networkperformance characteristics associated with an application. The methodmay be performed by a system, and more specifically an edge server(e.g., edge server 110) or an orchestrator of the edge server (e.g.,orchestrator 116). As indicated by the letter “C” at the beginning ofthe flow diagram 1700, the method may be performed after an initialconfiguration operation as described in FIGS. 13 and 14 . At 1710, theedge server may receive an updated set of desired network performancecharacteristics for the application. The received update, in someaspects, may be an update to one of the plurality of sets of desirednetwork performance characteristics for the plurality of applicationsstored in a application requirements table. The updated set of desirednetwork performance characteristics, in some aspects, may include one ormore of an updated minimum throughput, an updated threshold jitter, oran updated threshold delay. For example, referring to FIGS. 1 and 2 ,the edge server 110 may receive an updated set of desired networkperformance characteristics for an application in an applicationrequirements table 105 or 210, where the application requirements table105 or 210 may be stored in a memory of the edge server.

At 1720, the edge server may identify an updated set of two or moretraffic-control configurations that meet the updated set of desirednetwork performance characteristics for the application received at1710. For example, referring to FIGS. 1 and 2 , the edge server 110, oran orchestrator 116, may identify an updated set of two or moretraffic-control configurations that meet the updated set of desirednetwork performance characteristics for the application received at1710. In some aspects, the edge server may identify the updated set oftwo or more traffic-control configurations by comparing the updated setof desired network performance characteristics for the application withthe estimated network performance characteristics associated with eachof the plurality of traffic-control configurations. For example,referring to FIGS. 1, 2, 4, and 5 , edge server 110 (or orchestrator116) may compare the updated set of desired network performancecharacteristics for the application associated with application ID #2and the estimated network performance characteristics associated withdifferent traffic control patterns in traffic control patterns table 107or 410 to identify that traffic control patterns associated with trafficcontrol pattern IDs #1 and #2 meet (or are expected to meet) the set ofdesired network performance characteristics.

At 1730, the edge server may select, from the updated set of two or moretraffic-control configurations that meet the updated set of desirednetwork performance characteristics, an additional traffic-controlconfiguration. The updated set of two or more traffic-controlconfigurations, in some aspects, include traffic-control configurationsthat meet the updated set of desired network performance characteristicsfor the application and that may be associated with different estimatedpower usages (or power usage levels). The particular traffic-controlconfiguration selected, in some aspects, may be a traffic-controlconfiguration of the set of two or more traffic-control configurationswith a lowest associated estimated power usage or a lowest estimatedpower-usage level. For example, referring to FIGS. 1 and 2 edge server110 (or orchestrator 116) may select the traffic control patternassociated with traffic control pattern ID #2 based on a lower expectedpower usage.

Finally, at 1740, the edge server may configure the communication nodebased on the particular traffic-control configuration. The edge server,based on the selected particular traffic-control configuration, mayconfigure at least one of a physical interface, a network switch, or anapplication interface based on the particular traffic-controlconfiguration. For example, referring to FIGS. 1 and 4 , the edge server110 (or the orchestrator 116) may identify one of a set of physicalnetwork interfaces 111, a network switching module 112, or one of a setof networking interfaces for applications 113 that is associated withthe selected traffic control pattern based on one of fields 406-408 oftable 410 and may configure the identified physical interface, networkswitch, or networking interface for application.

FIG. 18 is a flow diagram 1800 illustrating a method for updating a setof traffic control configurations based on an updated set of desirednetwork performance characteristics associated with an application. Themethod may be performed by a system, and more specifically an edgeserver (e.g., edge server 110) or an orchestrator of the edge server(e.g., orchestrator 116). As indicated by the letter “D” at thebeginning of the flow diagram 1800, the method may be performed after aninitial configuration operation as described in FIGS. 13 and 14 . At1810, the edge server may detect a change to at least one of a set ofdesired network performance characteristics or a characteristic of amonitored traffic performance. The edge server may detect the changebased on a change to an application requirements table or a systemstatus table. For example, referring to FIGS. 1, 5, and 7 , the edgeserver 110 may detect (e.g., via checking the field status 752 an updatereceived via a field server 103, a power monitor 117, a system statustable 108, and an orchestrator 116) of a change to at least one of a setof desired network performance characteristics or may detect a change toan application requirements table 105.

At 1820, the edge server may generate an additional traffic-controlconfiguration based on the change to the at least one of the set ofdesired network performance characteristics or the characteristic of amonitored traffic performance. Based on the detected change, no trafficcontrol pattern may meet at least one set of desired network performancecharacteristics and the edge server may generate a traffic controlpatter (configuration) to meet the at least one set of desired networkperformance characteristic. For example, referring to FIGS. 1-5 , theedge server 110 may determine that a desired set of network performancecharacteristics in an application requirements table 105 or 210 is notmet by any traffic control pattern in a traffic control patterns table107 or 410 based on a measured performance characteristic in a fieldstatus table 106 or 310 or a measured power usage in system status table108 or 510 and generate an additional traffic control pattern to meetthe desired set of network performance characteristics.

Finally, at 1830, the edge server may configure the communication nodebased on the additional traffic-control configuration. The edge server,based on the additional traffic-control configuration, may configure atleast one of a physical interface, a network switch, or an applicationinterface based on the additional traffic-control configuration. Forexample, referring to FIGS. 1 and 4 , the edge server 110 (or theorchestrator 116) may identify one of a set of physical networkinterfaces 111, a network switching module 112, or one of a set ofnetworking interfaces for applications 113 that is associated with theadditional traffic control pattern based on one of fields 406-408 oftable 410 and may configure the identified physical interface, networkswitch, or networking interface for application.

According to the examples described above, it is possible for an edgeserver to utilize resources based on the power consumption by selectingan optimal interface from several interfaces. Additionally, the edgeserver may be capable of changing the method of traffic control tooptimize power consumption while maintaining the network performancerequired for the applications.

According to the present disclosure, the edge server may flexiblyprovide traffic control while meeting network performance requirements(e.g., desired network performance characteristics) of applications.Each of the aspects and examples described above may be combined witheach other. While examples of an apparatus and methods are describedabove they do not limit the subject matter of this disclosure. Othermodes considered to fail within the technical scope of the novelapparatus and methods are also covered by the present disclosure.Moreover, the novel apparatus and methods may not include all of thedetails explained in relation to the examples above. Furthermore,control lines and information lines are illustrated to the extentrequired for explaining the novel apparatus and methods, and not allcontrol lines and information lines required for the product maynecessarily be indicated. In effect, it may be understood that nearlyall of the configurations are mutually connected.

FIG. 19 illustrates an example computing environment with an examplecomputer device suitable for use in some example implementations.Computer device 1905 in computing environment 1900 can include one ormore processing units, cores, or processors 1910, memory 1915 (e.g.,RAM, ROM, and/or the like), internal storage 1920 (e.g., magnetic,optical, solid-state storage, and/or organic), and/or 10 interface 1925,any of which can be coupled on a communication mechanism or bus 1930 forcommunicating information or embedded in the computer device 1905. IOinterface 1925 is also configured to receive images from cameras orprovide images to projectors or displays, depending on the desiredimplementation.

Computer device 1905 can be communicatively coupled to input/userinterface 1935 and output device/interface 1940. Either one or both ofthe input/user interface 1935 and output device/interface 1940 can be awired or wireless interface and can be detachable. Input/user interface1935 may include any device, component, sensor, or interface, physicalor virtual, that can be used to provide input (e.g., buttons,touch-screen interface, keyboard, a pointing/cursor control, microphone,camera, braille, motion sensor, accelerometer, optical reader, and/orthe like). Output device/interface 1940 may include a display,television, monitor, printer, speaker, braille, or the like. In someexample implementations, input/user interface 1935 and outputdevice/interface 1940 can be embedded with or physically coupled to thecomputer device 1905. In other example implementations, other computerdevices may function as or provide the functions of input/user interface1935 and output device/interface 1940 for a computer device 1905.

Examples of computer device 1905 may include, but are not limited to,highly mobile devices (e.g., smartphones, devices in vehicles and othermachines, devices carried by humans and animals, and the like), mobiledevices (e.g., tablets, notebooks, laptops, personal computers, portabletelevisions, radios, and the like), and devices not designed formobility (e.g., desktop computers, other computers, information kiosks,televisions with one or more processors embedded therein and/or coupledthereto, radios, and the like).

Computer device 1905 can be communicatively coupled (e.g., via 10interface 1925) to external storage 1945 and network 1950 forcommunicating with any number of networked components, devices, andsystems, including one or more computer devices of the same or differentconfiguration. Computer device 1905 or any connected computer device canbe functioning as, providing services of, or referred to as a server,client, thin server, general machine, special-purpose machine, oranother label.

IO interface 1925 can include but is not limited to, wired and/orwireless interfaces using any communication or IO protocols or standards(e.g., Ethernet, 1902.11x. Universal System Bus, WiMax, modem, acellular network protocol, and the like) for communicating informationto and/or from at least al the connected components, devices, andnetwork in computing environment 1900. Network 1950 can be any networkor combination of networks (e.g., the Internet, local area network, widearea network, a telephonic network, a cellular network, satellitenetwork, and the like).

Computer device 1905 can use and/or communicate using computer-usable orcomputer readable media, including transitory media and non-transitorymedia. Transitory media include transmission media (e.g., metal cables,fiber optics), signals, carrier waves, and the like. Non-transitorymedia include magnetic media (e.g., disks and tapes), optical media(e.g., CD ROM, digital video disks, Blu-ray disks), solid-state media(e.g., RAM, ROM, flash memory, solid-state storage), and othernon-volatile storage or memory.

Computer device 1905 can be used to implement techniques, methods,applications, processes, or computer-executable instructions in someexample computing environments. Computer-executable instructions can beretrieved from transitory media, and stored on and retrieved fromnon-transitory media. The executable instructions can originate from oneor more of any programming, scripting, and machine languages (e.g., C,C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).

Processor(s) 1910 can execute under any operating system (OS) (notshown), in a native or virtual environment. One or more applications canbe deployed that include logic unit 1960, application programminginterface (API) unit 1965, input unit 1970, output unit 1975, andinter-unit communication mechanism 1995 for the different units tocommunicate with each other, with the OS, and with other applications(not shown). The described units and elements can be varied in design,function, configuration, or implementation and are not limited to thedescriptions provided. Processor(s) 1910 can be in the form of hardwareprocessors such as central processing units (CPUs) or in a combinationof hardware and software units.

In some example implementations, when information or an executioninstruction is received by API unit 1965, it may be communicated to oneor more other units (e.g., logic unit 1960, input unit 1970, output unit1975). In some instances, logic unit 1960 may be configured to controlthe information flow among the units and direct the services provided byAPI unit 1965, the input unit 1970, the output unit 1975, in someexample implementations described above. For example, the flow of one ormore processes or implementations may be controlled by logic unit 1960alone or in conjunction with API unit 1965. The input unit 1970 may beconfigured to obtain input for the calculations described in the exampleimplementations, and the output unit 1975 may be configured to providean output based on the calculations described in exampleimplementations.

Processor(s) 1910 can be configured to store, in the memory, a set ofdesired network performance characteristics for an application. Theprocessor(s) 1910 may also be configured to store, in the memory, aplurality of traffic-control configurations, wherein each of theplurality of traffic-control configurations is associated with anestimated power usage and a set of estimated network performancecharacteristics. The processor(s) 1910 may further be configured toselect, to execute the application, a particular traffic-controlconfiguration from a set of two or more traffic-control configurationsin the plurality of traffic-control configurations, wherein the set oftwo or more traffic-control configurations meet the set of desirednetwork performance characteristics for the application. Theprocessor(s) 1910 may further be configured to configure thecommunication node based on the particular traffic-controlconfiguration. The processor(s) 1910 may also be configured to identifythe set of two or more traffic-control configurations by comparing theset of desired network performance characteristics for the applicationwith the estimated network performance characteristics associated witheach of the plurality of traffic-control configurations. Theprocessor(s) 1910 may also be configured to configure at least one of aphysical interface, a network switch, or an application interface basedon the particular traffic-control configuration. The processor(s) 1910may also be configured to receive an indication that at least onecharacteristic of a monitored traffic performance associated with theapplication does not meet at least one desired network performancecharacteristic in the set of desired network performance characteristicsfor the application. The processor(s) 1910 may further be configured toselect a different traffic-control configuration in the set of two ormore traffic-control configurations. The processor(s) 1910 may furtherbe configured to configure the communication node based on the differenttraffic-control configuration. The processor(s) 1910 may also beconfigured to receive an indication of a power consumption associatedwith the particular traffic-control configuration. The processor(s) 1910may further be configured to update, based on the monitored powerconsumption, the estimated power usage associated with the particulartraffic-control configuration. The processor(s) 1910 may further beconfigured to determine, based on the updated estimated power usageassociated with the particular traffic-control configuration, to selectthe second traffic-control configuration. The processor(s) 1910 mayfurther be configured to configure the communication node based on thesecond traffic-control configuration. The processor(s) 1910 may furtherbe configured to receive an updated set of desired network performancecharacteristics for the application. The processor(s) 1910 may furtherbe configured to identify an updated set of two or more traffic-controlconfigurations by comparing the set of desired network performancecharacteristics for the application with the estimated networkperformance characteristics associated with each of the plurality oftraffic-control configurations. The processor(s) 1910 may further beconfigured to select, from the updated set of two or moretraffic-control configurations that meet the updated set of desirednetwork performance characteristics, an additional traffic-controlconfiguration. The processor(s) 1910 may further be configured toconfigure the communication node based on the additional traffic-controlconfiguration. The processor(s) 1910 may further be configured to detectchange to at least one of a set of desired network performancecharacteristics or a characteristic of a monitored traffic performance.The processor(s) 1910 may further be configured to generate anadditional traffic-control configuration based on the change to the atleast one of the set of desired network performance characteristics orthe characteristic of a monitored traffic performance. The processor(s)1910 may further be configured to configure the communication node basedon the additional traffic-control configuration.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations within a computer.These algorithmic descriptions and symbolic representations are themeans used by those skilled in the data processing arts to convey theessence of their innovations to others skilled in the art. An algorithmis a series of defined steps leading to a desired end state or result.In example implementations, the steps carried out require physicalmanipulations of tangible quantities for achieving a tangible result.

Unless specially stated otherwise, as apparent from the discussion, itis appreciated that throughout the description, discussions utilizingterms such as “processing,” “computing,” “calculating,” “determining,”“displaying,” or the like, can include the actions and processes of acomputer system or other information processing device that manipulatesand transforms data represented as physical (electronic) quantitieswithin the computer system's registers and memories into other datasimilarly represented as physical quantities within the computersystem's memories or registers or other information storage,transmission or display devices.

Example implementations may also relate to an apparatus for performingthe operations herein. This apparatus may be specially constructed forthe required purposes, or it may include one or more general-purposecomputers selectively activated or reconfigured by one or more computerprograms. Such computer programs may be stored in a computer readablemedium, such as a computer readable storage medium or a computerreadable signal medium. A computer readable storage medium may involvetangible mediums such as, but not limited to optical disks, magneticdisks, read-only memories, random access memories, solid-state devices,and drives, or any other types of tangible or non-transitory mediasuitable for storing electronic information. A computer readable signalmedium may include mediums such as carrier waves. The algorithms anddisplays presented herein are not inherently related to any particularcomputer or other apparatus. Computer programs can involve pure softwareimplementations that involve instructions that perform the operations ofthe desired implementation.

Various general-purpose systems may be used with programs and modules inaccordance with the examples herein, or it may prove convenient toconstruct a more specialized apparatus to perform desired method steps.In addition, the example implementations are not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the example implementations as described herein. Theinstructions of the programming language(s) may be executed by one ormore processing devices, e.g., central processing units (CPUs),processors, or controllers.

As is known in the art, the operations described above can be performedby hardware, software, or some combination of software and hardware.Various aspects of the example implementations may be implemented usingcircuits and logic devices (hardware), while other aspects may beimplemented using instructions stored on a machine-readable medium(software), which if executed by a processor, would cause the processorto perform a method to carry out implementations of the presentapplication. Further, some example implementations of the presentapplicate may be performed solely in hardware, whereas other exampleimplementations may be performed solely in software. Moreover, thevarious functions described can be performed in a single unit, or can bespread across a number of components in any number of ways. Whenperformed by software, the methods may be executed by a processor, suchas a general-purpose computer, based on instructions stored on acomputer readable medium. If desired, the instructions can be stored onthe medium in a compressed and/or encrypted format.

Moreover, other implementations of the present application will beapparent to those skilled in the art from consideration of thespecification and practice of the teachings of the present application.Various aspects and/or components of the described exampleimplementations may be used singly or in any combination. It is intendedthat the specification and example implementations be considered asexamples only, with the true scope and spirit of the present applicationbeing indicated by the following claims.

What is claimed:
 1. An apparatus at a communication node, the apparatuscomprising: a memory; and at least one processor coupled to the memoryand configured to: store, in the memory, a set of desired networkperformance characteristics for an application; store, in the memory, aplurality of traffic-control configurations, wherein each of theplurality of traffic-control configurations is associated with anestimated power usage and a set of estimated network performancecharacteristics; select, to execute the application, a particulartraffic-control configuration from a set of two or more traffic-controlconfigurations in the plurality of traffic-control configurations,wherein the set of two or more traffic-control configurations meet theset of desired network performance characteristics for the application;and configure the communication node based on the particulartraffic-control configuration.
 2. The apparatus of claim 1, wherein theset of desired network performance characteristics comprises one or moreof a minimum throughput, a threshold jitter, or a threshold delay. 3.The apparatus of claim 1, wherein the set of estimated networkperformance characteristics relate to one or more of a throughput, ajitter, or a delay.
 4. The apparatus of claim 1, wherein the estimatedpower usage comprises one or more of a numerical value associated withthe estimated power usage or an estimated power-usage level, wherein theestimated power-usage level comprises one of a high power-usage level, amedium power-usage level, or a low power-usage level.
 5. The apparatusof claim 4, wherein the particular traffic-control configuration is atraffic-control configuration of the set of two or more traffic-controlconfigurations with a lowest associated estimated power usage or alowest estimated power-usage level.
 6. The apparatus of claim 1, whereinthe at least one processor is further configured to: identify the set oftwo or more traffic c-control configurations by comparing the set ofdesired network performance characteristics for the application with theset of estimated network performance characteristics associated witheach of the plurality of traffic-control configurations.
 7. Theapparatus of claim 1, wherein, to configure the communication node basedon the particular traffic-control configuration, the at least oneprocessor is configured to: configure at least one of a physicalinterface, a network switch, or an application interface based on theparticular traffic-control configuration.
 8. The apparatus of claim 1,wherein the at least one processor is further configured to: receive anindication that at least one characteristic of a monitored trafficperformance associated with the application does not meet at least onedesired network performance characteristic in the set of desired networkperformance characteristics for the application; select a differenttraffic-control configuration in the set of two or more traffic-controlconfigurations; and configure the communication node based on thedifferent traffic-control configuration.
 9. The apparatus of claim 8,wherein the at least one characteristic is one of a throughput, ajitter, and a delay and the at least one characteristic previously metthe at least one desired network performance characteristic.
 10. Theapparatus of claim 1, wherein the at least one processor is furtherconfigured to: receive an indication of a power consumption associatedwith the particular traffic-control configuration.
 11. The apparatus ofclaim 10, wherein the at least one processor is further configured to:update, based on the indication of the power consumption, the estimatedpower usage associated with the particular traffic-controlconfiguration, wherein a relative priority of the particulartraffic-control configuration compared to a second traffic-controlconfiguration in the set of two or more traffic-control configurationsis affected by the updated estimated power usage associated with theparticular traffic-control configuration.
 12. The apparatus of claim 11,wherein the at least one processor is further configured to: determine,based on the updated estimated power usage associated with theparticular traffic-control configuration, to select the secondtraffic-control configuration; and configure the communication nodebased on the second traffic-control configuration.
 13. The apparatus ofclaim 1, wherein the at least one processor is further configured to:receive an updated set of desired network performance characteristicsfor the application; identify an updated set of two or moretraffic-control configurations by comparing the set of desired networkperformance characteristics for the application with the estimatednetwork performance characteristics associated with each of theplurality of traffic-control configurations; select, from the updatedset of two or more traffic-control configurations that meet the updatedset of desired network performance characteristics, an additionaltraffic-control configuration; and configure the communication nodebased on the additional traffic-control configuration.
 14. The apparatusof claim 1, wherein the at least one processor is further configured to:detect a change to at least one of the set of desired networkperformance characteristics or a characteristic of a monitored trafficperformance; generate an additional traffic-control configuration basedon the change to the set of desired network performance characteristicsor the characteristic of the monitored traffic performance; andconfigure the communication node based on the additional traffic-controlconfiguration.
 15. A method for a communication node comprising:storing, in a memory of the communication node, a set of desired networkperformance characteristics for an application; storing, in the memoryof the communication node, a plurality of traffic-controlconfigurations, wherein each of the plurality of traffic-controlconfigurations is associated with an estimated power usage and a set ofestimated network performance characteristics; selecting, to execute theapplication, a particular traffic-control configuration from a set oftwo or more traffic-control configurations in the plurality oftraffic-control configurations, wherein the set of two or moretraffic-control configurations meet the set of desired networkperformance characteristics for the application; and configuring thecommunication node based on the particular traffic-controlconfiguration.
 16. The method of claim 15, wherein the set of desirednetwork performance characteristics comprises one or more of a minimumthroughput, a threshold jitter, or a threshold delay, wherein the set ofestimated network performance characteristics relate to one or more of athroughput, a jitter, or a delay, and wherein the estimated power usagecomprises one or more of a numerical value associated with the estimatedpower usage or an estimated power-usage level, wherein the estimatedpower-usage level comprises one of a high power-usage level, a mediumpower-usage level, or a low power-usage level.
 17. The method of claim16, wherein the particular traffic-control configuration is atraffic-control configuration of the set of two or more traffic-controlconfigurations with a lowest associated estimated power usage or alowest estimated power-usage level.
 18. The method of claim 17, furthercomprising: identifying the set of two or more traffic-controlconfigurations by comparing the set of desired network performancecharacteristics for the application with the set of estimated networkperformance characteristics associated with each of the plurality oftraffic-control configurations; and configuring the communication nodebased on the particular traffic-control configuration by configuring atleast one of a physical interface, a network switch, or an applicationinterface based on the particular traffic-control configuration.
 19. Themethod of claim 15, further comprising: receiving an indication that atleast one characteristic of a monitored traffic performance associatedwith the application does not meet at least one desired networkperformance characteristic in the set of desired network performancecharacteristics for the application; selecting a differenttraffic-control configuration in the set of two or more traffic-controlconfigurations; and configuring the communication node based on thedifferent traffic-control configuration.
 20. A system comprising: afirst apparatus at a communication node, the first apparatus comprising:a memory; and at least one processor coupled to the memory andconfigured to: store, in the memory, a set of desired networkperformance characteristics for an application; store, in the memory, aplurality of traffic-control configurations, wherein each of theplurality of traffic-control configurations is associated with anestimated power usage and a set of estimated network performancecharacteristics; select, to execute the application, a particulartraffic-control configuration from a set of two or more traffic-controlconfigurations in the plurality of traffic-control configurations,wherein the set of two or more traffic-control configurations meet theset of desired network performance characteristics for the application;and configure the communication node based on the particulartraffic-control configuration; and a second apparatus comprising: amemory; and at least one processor coupled to the memory and configuredto: to monitor at least one characteristic of a traffic performanceassociated with the application; and transmit an indication of a valueassociated with the at least one characteristic of the trafficperformance to the first apparatus.